﻿using System;
using System.Collections.Generic;
using RN.ERP.DTO;
using System.Data.Entity;

namespace RN.ERP.BLL
{
    public class BaseOrderBLL : IBll
    {
        #region CA 订单
        protected DbContext baseContext;
        /// <summary>
        /// 获取订单详细信息。
        /// </summary>
        public virtual CaPayInfo GetOrderInfo(string orderId)
        {
            return null;
        }

        /// <summary>
        /// 获取订单列表。
        /// </summary>
        public virtual List<DTO.CaPayRelation> GetOrders(IList<QueryInvoiceInfoCondition> queryCondition, Guid userGuid, int pageCount, int pageSize)
        {
            return null;
        }

        /// <summary>
        /// 获取订单数量。
        /// </summary>
        public virtual int GetOrderCount(IList<QueryInvoiceInfoCondition> queryCondition, Guid userGuid)
        {
            return 0;
        }

        /// <summary>
        /// 获取订单产品。
        /// </summary>
        public virtual List<DTO.tb_ProductInfo> GetProducts(List<ProductCondition> condition, string areacode)
        {
            return null;
        }

        /// <summary>
        /// 添加订单。
        /// </summary>
        /// <returns></returns>
        public virtual OperationResult AddOrder(CaPayInfo payInfo)
        {
            return null;
        }

        /// <summary>
        /// 修改订单。
        /// </summary>
        /// <returns></returns>
        public virtual OperationResult EditOrder(CaPayInfo payInfo)
        {
            return null;
        }

        /// <summary>
        /// 删除订单
        /// </summary>
        /// <returns></returns>
        public virtual OperationResult DeleteOrder(Guid orderGuid)
        {
            return null;
        }

        /// <summary>
        /// 生成订单。
        /// </summary>
        /// <returns></returns>
        public virtual OperationResult SubmitOrder(CaPayInfo payInfo)
        {
            return null;
        }

        public virtual List<DTO.CaPayRelation> GetInvoicesList(IList<QueryInvoiceInfoCondition> queryCondition, int pageCount, int pageSize)
        {
            return null;
        }

        public virtual OperationResult AddInvoices(InvoiceOrderRelation relation)
        {
            return null;
        }

        public virtual int GetInvoicesCount(IList<QueryInvoiceInfoCondition> queryCondition)
        {
            return 0;
        }

        public virtual byte[] GetCorpCAPdf(Guid corpUserGuid)
        {
            return null;
        }

        public virtual byte[] GetPsnCAPdf(Guid empGuid)
        {
            return null;
        }

        public virtual byte[] GetPsnKeyPdf(Guid empGuid)
        {
            return null;
        }
        public virtual OperationResult ValidateKeyStatus(int caSubId, int dogId, string name)
        {
            return null;
        }

        public virtual OperationResult UpdateCert(int caSubId,
            string Entity,
            Guid EntityGuid,
            string EntityName,
            string KeySN,
            string operation)
        {
            return null;
        }

        public virtual OperationResult VerifyOrder(List<Guid> orderGuid, Guid userGuid)
        {
            return null;
        }

        public virtual List<DTO.tb_ProductGroupInfo> GetProductGroup()
        {
            return null;
        }

        public virtual List<DTO.tb_ProductInfo> GetProductsByUserGuid(string userGuid, string areacode, int type)
        {
            return null;
        }
        public virtual OperationResult OrderAudit(List<Guid> orderGuid, Guid userGuid)
        {
            return null;
        }

        public virtual List<DTO.ZBTenderPay> GetZBPayList(IList<QueryZBTenderInfoCondition> queryCondition, int pageCount, int pageSize)
        {
            return null;
        }

        public virtual string GetZBPayCount(IList<QueryZBTenderInfoCondition> queryCondition)
        {
            return null;
        }
        public virtual OperationResult PaySaveZBRemark(int ID, bool Processed, string Remark, int type)
        {
            return null;
        }
        public virtual OperationResult GetZBRemark(int ID, int type)
        {
            return null;
        }

        /// <summary>
        /// 获取企业CA信息
        /// </summary>
        /// <param name="corpUserGuid"></param>
        /// <returns></returns>
        public virtual List<DTO.CAPayinfo_Productinfo> GetCAInfo(string corpUserGuid)
        {
            return null;
        }

        #endregion

        #region 通用订单相关

        /// <summary>
        /// 获取订单列表。
        /// </summary>
        public virtual List<DTO.PayRelation> GetCommonOrders(
            IList<QueryCommonInvoiceCondition> queryCondition,
            Guid userGuid,
            int pageCount,
            int pageSize)
        {
            return null;
        }

        /// <summary>
        /// 获取订单数量。
        /// </summary>
        public virtual int GetCommonOrderCount(IList<QueryCommonInvoiceCondition> queryCondition, Guid userGuid)
        {
            return 0;
        }

        /// <summary>
        /// 获取订单详细信息。
        /// </summary>
        public virtual PayInfo GetCommonOrderInfo(string orderId)
        {
            return null;
        }

        /// <summary>
        /// 添加订单
        /// </summary>
        public virtual OperationResult AddCommonOrder(PayInfo payInfo)
        {
            return null;
        }


        /// <summary>
        /// 修改订单
        /// </summary>
        public virtual OperationResult EditCommonOrder(PayInfo payInfo)
        {
            return null;
        }

        /// <summary>
        /// 删除订单
        /// </summary>
        public virtual OperationResult DeleteCommonOrder(Guid orderGuid)
        {
            return null;
        }

        /// <summary>
        /// 生成订单。
        /// </summary>
        public virtual OperationResult SubmitCommonOrder(PayInfo payInfo)
        {
            return null;
        }

        /// <summary>
        /// 获取做key信息列表
        /// </summary>
        public virtual List<DTO.tb_CAPayInfo_DogID> GetMakeKeyInfos(MakeKeyInfosCondition condition, int pageIndex, int pageSize,out int count)
        {
            count = 0;
            return null;
        }

        public virtual StatisticsStruct GetPaidOrderList(string orderID, DateTime? startTime, DateTime? endTime)
        {
            return null;
        }

        public virtual StatisticsStruct GetOrderHistoryList(Guid userGuid)
        {
            return null;
        }
        #endregion
    }
}
